
//1695.删除子数组的最大得分
class Solution {
    public:
        int maximumUniqueSubarray(vector<int>& nums) {
            //维护一段区间，保证区间内每个元素仅出现一次，返回区间元素最大总和
            unordered_set<int> ss;
            int left=0,n=nums.size();
            int ret=0,tmp=0;
            for(int right=0;right<n;right++)
            {
                while(ss.count(nums[right]))  //进行出窗口
                {
                    tmp-=nums[left];
                    ss.erase(nums[left++]);
                }
                ss.insert(nums[right]);  //入窗口
                tmp+=nums[right];
                ret=max(ret,tmp);   //调整答案
            }
            return ret;
        }
    };